package com.lpf.beans;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;

/**
 * JavaBean
 *
 * 定义JavaBean中成员变量时所使用的类型，建议使用包装类型。因为每个基本类型都有一个默认值，
 * 例如：int ==> 0，boolean ==> false。
 *
 * 原因：
 *  mybatis 或 mybatis-plus 在帮我们操作 Employee 对象的时候，它有可能会对成员变量进行一个非空的判断。
 *  如果是基本类型的话，虽然我们没有给他们赋过值，但他们都会有一个默认值。这样的话，就无法知道当前的成员变量到底是不是空。
 *
 *  使用包装类型的话就会有一个统一的值：null
 */

/*
 * MybatisPlus会默认使用实体类的类名到数据中找对应的表
 */

//@TableName(value="tbl_employee")
@Data
public class Employee {
    /*
     * @TableId:
     * 	 value: 指定表中的主键列的列名， 如果实体属性名与列名一致，可以省略不指定.
     *   type: 指定主键策略.
     */
    @TableId(value="id" , type = IdType.AUTO)
    private Integer id;

    @TableField(value = "last_name")
    private String lastName;
    private String email;
    private Integer gender;
    private Integer age;

    @TableField(exist=false)
    private Double salary ;
}